import torch

# 模型配置
MODEL_CONFIG = {
    'input_size': 1,           # 输入特征维度（单变量时间序列）
    'hidden_size': 128,        # 使用中等大小的隐藏层
    'num_layers': 2,           # 减少LSTM层数
    'output_size': 2,          # 输出类别数（分类任务）
    'dropout': 0.3,            # 减少Dropout
    'bidirectional': True      # 使用双向LSTM
}

# 训练配置
TRAIN_CONFIG = {
    'batch_size': 32,          # 批次大小
    'learning_rate': 0.0005,   # 使用更保守的学习率
    'num_epochs': 150,         # 减少训练轮数
    'sequence_length': 250,    # 序列长度（使用完整的250个时间步）
    'train_split': 0.8,        # 训练集比例
    'device': 'cuda' if torch.cuda.is_available() else 'cpu',  # 设备选择
    'weight_decay': 0.001      # L2正则化
}

# 数据配置
DATA_CONFIG = {
    'data_path': 'data/ECG200_train.csv',  # 使用新生成的训练集
    'test_data_path': 'data/ECG200_test.csv',  # 使用新生成的测试集
    'feature_columns': [str(i) for i in range(250)],  # 使用所有250个特征列（时间步）
    'target_column': 'target',            # 目标列
    'timestamp_column': None              # 新数据集没有时间戳列
}

# 保存配置
SAVE_CONFIG = {
    'model_save_path': 'models/lstm_model.pth',  # 模型保存路径
    'log_save_path': 'logs/training_log.csv'     # 训练日志保存路径
}